package org.sdp.pearproject.controller;

import com.alibaba.fastjson.JSONObject;

import org.sdp.pearproject.dto.request.*;
import org.sdp.pearproject.dto.response.*;
import org.sdp.pearproject.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.Date;
import java.util.List;

/**
 * @ClassName: ProjectSuperController
 * @Description:
 * @Author: SDP
 * @Date: 2022-07-08
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
public class ProjectSuperController extends BaseController {
    @Autowired
    ProjectService service;

    public Integer addProject(ProjectAddRequest request) throws Exception {
        return service.addProject(request);
    }

    public Integer updateProject(ProjectUpdateRequest request) throws Exception {
        return service.updateProject(request);
    }

    public Integer deleteProject(ProjectDeleteRequest request) throws Exception {
        return service.deleteProject(request);
    }

    public ProjectQueryResponse queryProject(ProjectQueryRequest request) throws Exception {
        return service.queryProject(request);
    }

    public List<ProjectQueryResponse> listProject(ProjectQueryRequest request) throws Exception {
        return service.listProject(request);
    }

    public Integer countProject(ProjectQueryRequest request) throws Exception {
        return service.countProject(request);
    }

    public BaseStatResponse statProject(ProjectQueryRequest request) throws Exception {
        return service.statProject(request);
    }

    public List<ProjectForProjectResponse> project(ProjectForProjectRequest request) throws Exception {
        return service.project(request);
    }

    public Integer countForProject(ProjectForProjectRequest request) throws Exception {
        return service.countForProject(request);
    }

    public BaseStatResponse statForProject(ProjectForProjectRequest request) throws Exception {
        return service.statForProject(request);
    }

    public String exportExcelProject(ProjectForProjectRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectResponse> list = service.project(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForProjectMemberListForInviteResponse> projectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        return service.projectMemberListForInvite(request);
    }

    public Integer countForProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        return service.countForProjectMemberListForInvite(request);
    }

    public BaseStatResponse statForProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        return service.statForProjectMemberListForInvite(request);
    }

    public String exportExcelProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectMemberListForInviteResponse> list = service.projectMemberListForInvite(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForDepartmentResponse> department(ProjectForDepartmentRequest request) throws Exception {
        return service.department(request);
    }

    public Integer countForDepartment(ProjectForDepartmentRequest request) throws Exception {
        return service.countForDepartment(request);
    }

    public BaseStatResponse statForDepartment(ProjectForDepartmentRequest request) throws Exception {
        return service.statForDepartment(request);
    }

    public String exportExcelDepartment(ProjectForDepartmentRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForDepartmentResponse> list = service.department(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForTaskStagesResponse> taskStages(ProjectForTaskStagesRequest request) throws Exception {
        return service.taskStages(request);
    }

    public Integer countForTaskStages(ProjectForTaskStagesRequest request) throws Exception {
        return service.countForTaskStages(request);
    }

    public BaseStatResponse statForTaskStages(ProjectForTaskStagesRequest request) throws Exception {
        return service.statForTaskStages(request);
    }

    public String exportExcelTaskStages(ProjectForTaskStagesRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForTaskStagesResponse> list = service.taskStages(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForTaskStagesTasksResponse> taskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        return service.taskStagesTasks(request);
    }

    public Integer countForTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        return service.countForTaskStagesTasks(request);
    }

    public BaseStatResponse statForTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        return service.statForTaskStagesTasks(request);
    }

    public String exportExcelTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForTaskStagesTasksResponse> list = service.taskStagesTasks(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForOrganizationGetOrgListResponse> organizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        return service.organizationGetOrgList(request);
    }

    public Integer countForOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        return service.countForOrganizationGetOrgList(request);
    }

    public BaseStatResponse statForOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        return service.statForOrganizationGetOrgList(request);
    }

    public String exportExcelOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForOrganizationGetOrgListResponse> list = service.organizationGetOrgList(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForNotifyNoReadsBaseResponse> notifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        return service.notifyNoReadsBase(request);
    }

    public Integer countForNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        return service.countForNotifyNoReadsBase(request);
    }

    public BaseStatResponse statForNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        return service.statForNotifyNoReadsBase(request);
    }

    public String exportExcelNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForNotifyNoReadsBaseResponse> list = service.notifyNoReadsBase(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForNotifyNoReadsCountResponse> notifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        return service.notifyNoReadsCount(request);
    }

    public Integer countForNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        return service.countForNotifyNoReadsCount(request);
    }

    public BaseStatResponse statForNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        return service.statForNotifyNoReadsCount(request);
    }

    public String exportExcelNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForNotifyNoReadsCountResponse> list = service.notifyNoReadsCount(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForProjectMemberIndexResponse> projectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        return service.projectMemberIndex(request);
    }

    public Integer countForProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        return service.countForProjectMemberIndex(request);
    }

    public BaseStatResponse statForProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        return service.statForProjectMemberIndex(request);
    }

    public String exportExcelProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectMemberIndexResponse> list = service.projectMemberIndex(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForAccountBaseResponse> accountBase(ProjectForAccountBaseRequest request) throws Exception {
        return service.accountBase(request);
    }

    public Integer countForAccountBase(ProjectForAccountBaseRequest request) throws Exception {
        return service.countForAccountBase(request);
    }

    public BaseStatResponse statForAccountBase(ProjectForAccountBaseRequest request) throws Exception {
        return service.statForAccountBase(request);
    }

    public String exportExcelAccountBase(ProjectForAccountBaseRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForAccountBaseResponse> list = service.accountBase(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForAccountAuthResponse> accountAuth(ProjectForAccountAuthRequest request) throws Exception {
        return service.accountAuth(request);
    }

    public Integer countForAccountAuth(ProjectForAccountAuthRequest request) throws Exception {
        return service.countForAccountAuth(request);
    }

    public BaseStatResponse statForAccountAuth(ProjectForAccountAuthRequest request) throws Exception {
        return service.statForAccountAuth(request);
    }

    public String exportExcelAccountAuth(ProjectForAccountAuthRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForAccountAuthResponse> list = service.accountAuth(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForProjectTemplateResponse> projectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        return service.projectTemplate(request);
    }

    public Integer countForProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        return service.countForProjectTemplate(request);
    }

    public BaseStatResponse statForProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        return service.statForProjectTemplate(request);
    }

    public String exportExcelProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectTemplateResponse> list = service.projectTemplate(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForMenuMenuResponse> menuMenu(ProjectForMenuMenuRequest request) throws Exception {
        return service.menuMenu(request);
    }

    public Integer countForMenuMenu(ProjectForMenuMenuRequest request) throws Exception {
        return service.countForMenuMenu(request);
    }

    public BaseStatResponse statForMenuMenu(ProjectForMenuMenuRequest request) throws Exception {
        return service.statForMenuMenu(request);
    }

    public String exportExcelMenuMenu(ProjectForMenuMenuRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForMenuMenuResponse> list = service.menuMenu(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForNodeBaseResponse> nodeBase(ProjectForNodeBaseRequest request) throws Exception {
        return service.nodeBase(request);
    }

    public Integer countForNodeBase(ProjectForNodeBaseRequest request) throws Exception {
        return service.countForNodeBase(request);
    }

    public BaseStatResponse statForNodeBase(ProjectForNodeBaseRequest request) throws Exception {
        return service.statForNodeBase(request);
    }

    public String exportExcelNodeBase(ProjectForNodeBaseRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForNodeBaseResponse> list = service.nodeBase(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForNotifyResponse> notify(ProjectForNotifyRequest request) throws Exception {
        return service.notify(request);
    }

    public Integer countForNotify(ProjectForNotifyRequest request) throws Exception {
        return service.countForNotify(request);
    }

    public BaseStatResponse statForNotify(ProjectForNotifyRequest request) throws Exception {
        return service.statForNotify(request);
    }

    public String exportExcelNotify(ProjectForNotifyRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForNotifyResponse> list = service.notify(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForIndexSystemConfigBaseResponse> indexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        return service.indexSystemConfigBase(request);
    }

    public Integer countForIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        return service.countForIndexSystemConfigBase(request);
    }

    public BaseStatResponse statForIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        return service.statForIndexSystemConfigBase(request);
    }

    public String exportExcelIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForIndexSystemConfigBaseResponse> list = service.indexSystemConfigBase(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForNodeAuthBaseResponse> nodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        return service.nodeAuthBase(request);
    }

    public Integer countForNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        return service.countForNodeAuthBase(request);
    }

    public BaseStatResponse statForNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        return service.statForNodeAuthBase(request);
    }

    public String exportExcelNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForNodeAuthBaseResponse> list = service.nodeAuthBase(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForMemberBaseResponse> memberBase(ProjectForMemberBaseRequest request) throws Exception {
        return service.memberBase(request);
    }

    public Integer countForMemberBase(ProjectForMemberBaseRequest request) throws Exception {
        return service.countForMemberBase(request);
    }

    public BaseStatResponse statForMemberBase(ProjectForMemberBaseRequest request) throws Exception {
        return service.statForMemberBase(request);
    }

    public String exportExcelMemberBase(ProjectForMemberBaseRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForMemberBaseResponse> list = service.memberBase(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForFileResponse> file(ProjectForFileRequest request) throws Exception {
        return service.file(request);
    }

    public Integer countForFile(ProjectForFileRequest request) throws Exception {
        return service.countForFile(request);
    }

    public BaseStatResponse statForFile(ProjectForFileRequest request) throws Exception {
        return service.statForFile(request);
    }

    public String exportExcelFile(ProjectForFileRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForFileResponse> list = service.file(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForProjectFeaturesResponse> projectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        return service.projectFeatures(request);
    }

    public Integer countForProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        return service.countForProjectFeatures(request);
    }

    public BaseStatResponse statForProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        return service.statForProjectFeatures(request);
    }

    public String exportExcelProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectFeaturesResponse> list = service.projectFeatures(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForProjectVersionResponse> projectVersion(ProjectForProjectVersionRequest request) throws Exception {
        return service.projectVersion(request);
    }

    public Integer countForProjectVersion(ProjectForProjectVersionRequest request) throws Exception {
        return service.countForProjectVersion(request);
    }

    public BaseStatResponse statForProjectVersion(ProjectForProjectVersionRequest request) throws Exception {
        return service.statForProjectVersion(request);
    }

    public String exportExcelProjectVersion(ProjectForProjectVersionRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectVersionResponse> list = service.projectVersion(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForTaskSelfListResponse> taskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        return service.taskSelfList(request);
    }

    public Integer countForTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        return service.countForTaskSelfList(request);
    }

    public BaseStatResponse statForTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        return service.statForTaskSelfList(request);
    }

    public String exportExcelTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForTaskSelfListResponse> list = service.taskSelfList(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForProjectGetLogBySelfProjectResponse> projectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        return service.projectGetLogBySelfProject(request);
    }

    public Integer countForProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        return service.countForProjectGetLogBySelfProject(request);
    }

    public BaseStatResponse statForProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        return service.statForProjectGetLogBySelfProject(request);
    }

    public String exportExcelProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForProjectGetLogBySelfProjectResponse> list = service.projectGetLogBySelfProject(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForTaskLogResponse> taskLog(ProjectForTaskLogRequest request) throws Exception {
        return service.taskLog(request);
    }

    public Integer countForTaskLog(ProjectForTaskLogRequest request) throws Exception {
        return service.countForTaskLog(request);
    }

    public BaseStatResponse statForTaskLog(ProjectForTaskLogRequest request) throws Exception {
        return service.statForTaskLog(request);
    }

    public String exportExcelTaskLog(ProjectForTaskLogRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForTaskLogResponse> list = service.taskLog(request);
        return super.exportExcel(request, list);
    }
    
    public List<ProjectForTaskMemberResponse> taskMember(ProjectForTaskMemberRequest request) throws Exception {
        return service.taskMember(request);
    }

    public Integer countForTaskMember(ProjectForTaskMemberRequest request) throws Exception {
        return service.countForTaskMember(request);
    }

    public BaseStatResponse statForTaskMember(ProjectForTaskMemberRequest request) throws Exception {
        return service.statForTaskMember(request);
    }

    public String exportExcelTaskMember(ProjectForTaskMemberRequest request) throws Exception {
        clearPageInfo(request);
        
        List<ProjectForTaskMemberResponse> list = service.taskMember(request);
        return super.exportExcel(request, list);
    }
    
    public ProjectForReadResponse read(ProjectForReadRequest request) throws Exception {
        return service.read(request);
    }

    public ProjectForIdToNameResponse idToName(ProjectForIdToNameRequest request) throws Exception {
        return service.idToName(request);
    }

    public ProjectForNameToIdResponse nameToId(ProjectForNameToIdRequest request) throws Exception {
        return service.nameToId(request);
    }

    public ProjectForTaskCreateCommentParamResponse taskCreateCommentParam(ProjectForTaskCreateCommentParamRequest request) throws Exception {
        return service.taskCreateCommentParam(request);
    }

    public JSONObject login(ProjectForLoginRequest request) throws Exception {
        return service.login(request);
    }

    public JSONObject eventsGetEventsListByCalendar(ProjectForEventsGetEventsListByCalendarRequest request) throws Exception {
        return service.eventsGetEventsListByCalendar(request);
    }

    public List<Object> accountForbid(ProjectForAccountForbidRequest request) throws Exception {
        return service.accountForbid(request);
    }

    public List<Object> accountResume(ProjectForAccountResumeRequest request) throws Exception {
        return service.accountResume(request);
    }


    public List<Object> projectCollectCollect(ProjectCollectionAddRequest request) throws Exception {
        return service.projectCollectCollect(request);
    }

    public List<Object> projectMemberInviteMember(ProjectMemberAddRequest request) throws Exception {
        return service.projectMemberInviteMember(request);
    }

    public InviteLinkQueryResponse inviteLinkSave(InviteLinkAddRequest request) throws Exception {
        return service.inviteLinkSave(request);
    }

    public List<ProjectForProjectMemberListForInviteResponse> projectMemberSearchInviteMember(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        return service.projectMemberSearchInviteMember(request);
    }

    public List<ProjectForProjectResponse> selfList(ProjectForProjectRequest request) throws Exception {
        return service.selfList(request);
    }

    public JSONObject notifyNoReads(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        return service.notifyNoReads(request);
    }

    public JSONObject account(ProjectForAccountBaseRequest request) throws Exception {
        return service.account(request);
    }

    public JSONObject node(BaseRequest request) throws Exception {
        return service.node(request);
    }

    public List<ProjectForMenuMenuResponse> index(ProjectForMenuMenuRequest request) throws Exception {
        return service.index(request);
    }

    public JSONObject indexSystemConfig(BaseRequest request) throws Exception {
        return service.indexSystemConfig(request);
    }

    public List<ProjectForAccountBaseResponse> accountAllList(BaseRequest request) throws Exception {
        return service.accountAllList(request);
    }

    public List<Object> eventsSave(EventsAddRequest request) throws Exception {
        return service.eventsSave(request);
    }

    public List<Object> loginOut(BaseRequest request) throws Exception {
        return service.loginOut(request);
    }

    public Boolean taskCreateComment(ProjectForTaskCreateCommentParamRequest request) throws Exception {
        return service.taskCreateComment(request);
    }

}
